package com.vita.testCore.value;

import RxJava.ExceptionHelper;
import RxJava.Flowable;
import RxJava.Function;

/**
 * 数值类型选择器
 * 提供给ValueStore
 */
public class Chooser<T> {
    public T get(){
        return null;
    }

//    public static <T> Cvt onAssembly(Cvt source) {
//        Function<? super Cvt, ? extends Cvt> f ;
//        if (f != null) {
//            return apply(f, source);
//        }
//        return source;
//    }

    /**
     * f.apply(t) 返回的R
     */
    static <T, R> R apply(Function<T, R> f, T t) {
        try {
            return f.apply(t);
        } catch (Throwable ex) {
            throw ExceptionHelper.wrapOrThrow(ex);
        }
    }
}
